package com.ZeroCarbon.service;

import com.ZeroCarbon.domain.dto.IdentityDetailDTO;
import com.ZeroCarbon.domain.dto.IdentityPreviewDTO;
import com.ZeroCarbon.domain.dto.IdentityReceiverDTO;
import com.ZeroCarbon.domain.po.Identity;
import com.ZeroCarbon.exception.BusinessLogicException;
import com.ZeroCarbon.exception.FileHandingException;
import com.baomidou.mybatisplus.extension.service.IService;

import java.io.IOException;
import java.util.List;

public interface IIdentityService extends IService<Identity> {

    long getIdentitiesNumber() throws BusinessLogicException;

    void addIdentity(IdentityReceiverDTO identity) throws IOException, FileHandingException, BusinessLogicException;

    List<IdentityDetailDTO> getIdentities();

    List<IdentityPreviewDTO> getIdentitiesPreview();

    IdentityDetailDTO getIdentity(String id) throws BusinessLogicException;

    void updateIdentity(IdentityReceiverDTO identityDetailDTO) throws IOException, FileHandingException, BusinessLogicException;

    void deleteIdentity(String id) throws BusinessLogicException;
}
